Strongly typed tags

ABSTRACT

In one or more embodiments, a tag is provided and includes a property that associates a strongly typed variable with the tag. Strongly typed variables can include any suitable types. For example, in at least some embodiments, the strongly typed variable is a people type that allows the tag to be associated with an individual person or group of people by virtue of a unique identification that is associated with the person or group. Strongly typed tags can then serve as a foundation upon which various other types of information and services can be provided to enhance the user experience.

PRIORITY

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 11/821,711 filed Jun. 25, 2007, the disclosure ofwhich is incorporated by reference as if set forth in its entirety forall purposes.

BACKGROUND

Tagging, also referred to as “social bookmarking” provides a way forusers to help categorize items such as photos, videos, blogs, and otherdigital items. Tagging provides a way to assign categories to an itemand can be used to help categorize an item on a computing device.

Generally, when a user tags an item, they assign a text string to theobject. For example, a user may tag a particular photo with a textstring “Dad” to indicate that the photo contains a picture of theirfather. The tag then resides in the form of metadata that is associatedwith that photo. Yet, tags tend to be somewhat generic text strings thatmake it difficult if not impossible to use the data of the tag in anyother way. That is, typically, tags have a meaning to the user whoassigned the tag, or perhaps to a couple of people associated with theuser. But, after that, a tag's meaning and utility can becomequestionable.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In one or more embodiments, a tag includes a property that allows anassociation with a strongly typed variable. Strongly typed variables caninclude any suitable types. For example, in at least some embodiments,the strongly typed variable is a people type that allows the tag to beassociated with an individual person or group of people by virtue of aunique identification (ID) that is associated with the person or group.Strongly typed tags can then serve as a foundation upon which variousother types of information and services can be provided to enhance auser's experience.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likefeatures.

FIG. 1 illustrates an operating environment in which various principlesdescribed herein can be employed in accordance with one or moreembodiments.

FIG. 2 illustrates an object and a strongly typed tag in accordance withone or more embodiments.

FIG. 3 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 4 illustrates an example system in accordance with one or moreembodiments.

FIG. 5 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 6 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 7 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 8 illustrates an example system that can be used to implement oneor more embodiments.

DETAILED DESCRIPTION Overview

In one or more embodiments, a tag includes a property that allows anassociation with a strongly typed variable. A strongly typed variable isone that explicitly represents only one variable type. Strongly typedvariables can include any suitable types. For example, in at least someembodiments, the strongly typed variable is a people type that allowsthe tag to be associated with an individual person or group of people byvirtue of a unique identification (ID) that is associated with theperson or group. Strongly typed tags can then serve as a foundation uponwhich various other types of information and services can be provided toenhance a user's experience.

In the discussion that follows, a section entitled “OperatingEnvironment” is provided and describes one example operating environmentin which one or more embodiments can be employed. Following this, asection entitled “Tagging in General” is provided and discusses somegeneral principles associated with tagging. Following this, a sectionentitled “Example Embodiment” describes one or more embodiments in whichtags can be created, used and integrated with other applications toprovide various services that can enhance a user's experience. A sectionentitled “Example Methods” follows and describes various methodicalaspects in accordance with one or more embodiments.

Last, a section entitled “Example System” is provided and describes anexample system that can be utilized to implement the computing device ofFIG. 1.

Operating Environment

FIG. 1 illustrates an operating environment in accordance with one ormore embodiments, generally at 100. Environment 100 includes a computingdevice 102 having one or more processors 104, one or morecomputer-readable media 106 and one or more applications 108 that resideon the computer-readable media and which are executable by theprocessor(s). The computer-readable media can include, by way of exampleand not limitation, all forms of volatile and non-volatile memory and/orstorage media that are typically associated with a computing device.Such media can include ROM, RAM, flash memory, hard disk, removablemedia and the like. One specific example of a computing device is shownand described below in FIG. 8.

In addition, computing device 102 can include software applications suchas web browser 110 and instant messaging application 111. In at leastsome embodiments, various applications are configured to providefunctionality based upon strongly typed tags associated with variousobjects, as will become apparent below.

In addition, environment 100 includes a network 112, such as one or moreof the Internet, a presence-based network such as one that is used toimplement an instant messaging environment, and one or more web sites114. Computing device 102 can communicate with web sites 114 and othersvia network 112 using any suitable protocols. The web sites, as well asother sources, can provide access to various content that can be taggedin accordance with the embodiments described herein.

Computing device 102 can be embodied as any suitable computing devicesuch as, by way of example and not limitation, a desktop computer, aportable computer, a handheld computer such as personal digitalassistants (PDA), cell phone, and the like.

Having discussed an example operating environment, consider now adiscussion of tagging in general and how strongly typed tags can becreated and used.

Tagging in General

One of the principal instruments for creating networks of virtualcommunities (or online social networks, as they are often called) is“tagging.” Tagging refers to a process that allows individuals to applywhatever labels they think best describe content so that they canorganize and consume the content. Tagging can be part of an overallsocial experience of a web site or application, e.g. by being used toorganize photos on a photo-posting site, or it can be the primary focusfor cataloging information either online or locally.

The tagging process is a user-driven, user-focused process.Specifically, users develop their own tags that describe their ways ofconceiving and describing things and their ways of classifying andorganizing their world.

Tags can be applied by an individual in any number of ways. For example,a user can apply tags to local objects using an application thatexecutes on their local computing device. A user can also apply tagswhen a user visits a particular web site. Specifically, the web site mayhave a user interface component that provides a mechanism by which theindividual can apply a tag to content on that site. Additionally, theuser's web browser may enable the user to apply tags to URLs or linksthat they visit.

In accordance with one or more embodiments, individual tags have aproperty that allows the tag to be associated with a strongly typedvariable. A strongly typed variable is one that explicitly representsonly one variable type. In accordance with the embodiments describedherein, any suitable variable type can be utilized. In the example thatfollows, a variable type in the form of a people type is utilized.However, it should be appreciated and understood that other types can beutilized without departing from the spirit and scope of the claimedsubject matter. For example, in some scenarios, an insurance typevariable might be used to represent various insurance entities, a storetype variable might be utilized to represent various stores, a vehicletype variable might be used to represent various vehicles, and the like.Further, a region type variable might be used to represent boundedgeographic regions and an organization type variable might be used torepresent different types of organizations. Needless to say, the examplescenarios in which strongly typed tags can be used are seeminglyendless.

As but one example, consider FIG. 2. There, a tagged object is showngenerally at 200 and includes, in this example, an object 202 and anassociated tag 204. Object 202 can comprise any suitable type of objectthat can be tagged. By way of example and not limitation, object 202 caninclude digital objects such as photos, videos, blogs, articles, files,web pages, services and the like. Tag 204 includes, in this example, anoptional string type property and a people type property.

Here, the optional string type property can be used to provide aso-called “friendly name” for the object. For example, where object 202is a photo, a character string “Dad” might be used to refer to the factthat Dad appears in the photo.

The people type property is a strongly typed variable that explicitlyrepresents a person or group of people. The people type property can beused to associate a unique identification (ID) with an individual or agroup of individuals. Any suitable unique ID can be utilized. Forexample, in some embodiments, the unique ID can comprise a globallyunique ID that is resolvable to a particular person or group of people.Alternately or additionally, the unique ID can comprise an emailaddress, instant messaging ID or any other suitable type of ID. So, inthe present example, while the “friendly name” associated with object202 may be “Dad”, the people type property may include Dad's unique ID,such as “bigdaddy_(—)123@xyz.com”. In this manner, object 202 nowincludes a tag that is strongly typed in a manner that is resolvable toDad by virtue of the unique ID. One example of a unique ID is aMicrosoft® Passport User ID or “PUID”, as will be appreciated by theskilled artisan.

Consider also that strongly typed tags can also, in at least someembodiments, be used to resolve different strings or “friendly names” tothe same unique ID. As an example, consider the following. Assume thatMom has a photo that she wishes to share with her family. As such, shesends the photo to her son Bob and her sister Edna. When Bob receivesthe photo, he tags it with the friendly name “Mom” and Mom's unique ID.When Edna receives the photo, she tags it with the friendly name “Sis”and the same unique ID that Bob used. In this case, two differentstrings are resolvable to the same unique ID. That is, if Edna sent Bobsimilarly tagged photos of Mom that Bob had not yet received, then Bob'ssystem could use the photos' unique ID to resolve that “Sis” shouldactually read “Mom” for the current user—Bob.

Tag 204 and others like tag 204 can be created in any suitable way. Forexample, in at least some embodiments, a user interface can be presentedto a user to allow the user to create a tag, associate the tag with anobject and strongly type the tag by associating with it a unique ID thatitself is associated with one or more people. The user interface can beexposed by any suitable application that might be used to tag objects,an example of which is provided below. In addition, the tag can berepresented using any suitable type of format examples of which include,by way of example and not limitation, EXchangeable Image File Format(EXIF), EXtensible Metadata Platform (XMP) and the like. For example,one suitable representation for an XMP contact tag could be as follows:

<rdf : Description rdf : about = “” xmlns:MicrosoftPhoto=www.microsoft.com>  <MicrosoftPhoto:ContactTag>  <rdf :Description rdf : about = “” xmlns:  MicrosoftPhoto=www.microsoft.com>  <MicrosoftPhoto:FriendlyName> Jason </   MicrosoftPhoto:FriendlyName>  <MicrosoftPhoto:ID> JasonFlaks@xyz.com </ MicrosoftPhoto:ID>   </rdf:Description>  </MicrosoftPhoto: ContactTag> </rdf:Description>

FIG. 3 is a flow diagram that describes steps in a method in accordancewith one embodiment. The method can be implemented in connection withany suitable hardware, software, firmware or combination thereof. In atleast some embodiments, the method can be implemented in software by,for example, a suitably configured software application examples ofwhich are provided above and below.

Step 300 presents a user interface that enables a user to create a tag.Any suitable user interface can be used, an example of which is providedbelow. Step 302 defines a tag. This step can be performed by a user viathe user interface. For example, using the user interface, a user candefine a tag by inputting parameters that are relevant to the tag. Anysuitable parameters can be used. For example, in some embodiments, thetag can be defined to have a friendly name, as described above. Step 304strongly types the tag. This step can be performed by providing a uniqueID that is associated with the tag through, for example, a people typeproperty. The unique ID can be associated with an individual person or agroup of people. For example, a group of people might include a socialcircle associated with the user, such as a soccer club or book club.Step 306 associates the tag with an object. Any suitable object can bethe subject of this act examples of which are provided above and below.

Having described the nature of tags and how example tags can bestructured, consider now an implementation example which illustrates theuse of tags in connection with a couple of different applications—aphoto viewing/managing application and an instant messaging application.It is to be appreciated and understood that these constitute examplesand are not to be used to limit application of the claimed subjectmatter to only these particular applications. As such, otherapplications can be utilized without departing from the spirit and scopeof the claimed subject matter.

Example Embodiment

Preliminarily, consider the effect of associating a unique ID with a tagor strongly typing the tag. By strongly typing a tag, the tag nowcontains an actionable piece of information—a uniquely resolvable ID. Byvirtue of including a uniquely resolvable ID, the tag can serve as abasis for providing a variety of different services. For example, if auser is interacting with an object that includes a strongly typed tagthat is resolvable to a person who appears on the user's instantmessaging buddy list, if that person is currently online, the user mightbe prompted from within the application in which they are working toinitiate a conversation with their buddy. Alternately or additionally,an application with which the user is working may opt to show, in anappropriately configured user interface, so-called presence informationfor those people who are the subject of a strongly-typed tag and who arecurrently online. Examples of both of these scenarios are providedbelow.

As an example of ways in which strongly typed tags can be utilized,consider the following in connection with FIG. 4.

There, the system from FIG. 1 is shown with like numerals depicting likecomponents. In addition, computing device 102 includes a photo viewingapplication 400 that enables a user to acquire, view and manage objectsin the form of photos and video. In operation, application 400 can allowphotos to be acquired from any suitable source such as via an emailapplication that resides on computing device 102, from one or more websites 114, from one or more other users 402 and/or from computing device102, and the like.

In this particular example, application 400 includes a user interfacecomponent 404 that allows a user to create a tag for a photo that theyreceive or alternately pull from a local store. User interface 404includes a field 406 that enables the user to enter a unique ID that isto be associated with a photo 414 via a tag. The unique ID enables a tagto be defined that is strongly typed and associated with photo 414. Inthis example, the unique ID is an email address that has been enteredinto field 406. The unique ID could also be a PUID, as noted above.Recall that any suitable unique ID can be utilized. In one or moreembodiments, a tag can be created using information from a user'scontact information, such as the user's email contacts or instantmessenger buddy list. For example, if photo 414 includes a picture froma buddy, then the user may elect to create a tag that is pre-populatedwith his or her buddy's information. Alternately or additionally, theuser may wish to create a new tag with new information if the subject ofthe photo is not an individual who appears in the user's contactinformation or instant messaging buddy list.

Further, the user interface includes optional fields 408, 410 to enablea user to enter an event and address, respectively, associated with thephoto. An import button 412 is provided to enable the user to import thephoto to their local device.

Once the object or photo is tagged in the manner described above,additional services and functionality can be provided using the stronglytyped tag as a foundation. As an example, consider FIG. 5 whichillustrates a photo gallery user interface generally at 500. The photogallery user interface can be provided by an application such as photoviewing application 400 (FIG. 4).

The illustrated photo gallery user interface allows a user to view acollection of their photos, such as those shown generally at 502. Inaddition, the photo gallery user interface includes other features thatbuild upon or otherwise utilize strongly typed tags. Specifically,interface 500 includes a navigation tree 504 having a number of nodesamong which are a tag node 506 and a people node 508.

In one or more embodiments, tag node 506 enables a user to create andmanage tags from within photo viewing application 400. Specifically, thetag node is expandable to expose a list of tags that the user hascreated. For example, the user may have created tags for a number oftheir friends and family. By clicking on the tag node 506, the user canview a list of their created tags. In addition, tag node 506 can enablea user to associate a tag with a contact that might appear in theiremail contacts or buddy list. That is, the user can be given theopportunity to strongly type a tag. Specifically, in the illustratedexample, assume that a tag exists in the tag node for “Ryan”. In thisexample, by right clicking on “Ryan”, the user can be given an option toassociate Ryan's tag with a contact. Specifically, a flyout menu 510 cangive the user an option to associate Ryan's tag with a contact or tootherwise strongly type the tag. If the user elects to associate Ryan'stag with a contact or to strongly type the tag, then the user interface500 can, in a first instance, present a list of contacts adjacent thefly out menu 510 to enable the user to select an appropriate contact.Once the contact is selected, the user may be presented with a userinterface, such as user interface 404 (FIG. 4) to enable the user toenter additional information that is to be associated with Ryan's tag.In a second instance in which the Ryan may not appear in the user'scontact list, a user interface such as user interface 404 can bepresented to enable the user to strongly type the tag. By doing this,the user has created a strongly typed tag for Ryan. This tag can be usedto tag a variety of objects that a user may encounter.

In one or more embodiments, people node 508 is also expandable to exposea list of people who have objects—in this case photos—that have beentagged with strongly typed tags and which are accessible via the photogallery application. In this particular example, threeindividuals—Katheline Grace, Pauline Grace and Blondie—have photos thatare viewable via user interface 500. By virtue of having photos thathave been tagged with strongly-typed tags, the photo viewing applicationcan show so-called presence information to indicate that a particularperson is online. Specifically, by virtue of knowing the unique ID forindividual tag-bearing photos, the photo viewing application (or anotherapplication or component acting on its behalf) can contact anappropriate presence network, provide the unique IDs to the network andreceive back a notification of whether any corresponding individuals arecurrently online. If so, the photo viewing application can cause an iconto be presented which indicates the individuals who are currentlyonline. For example, a user interface portion 512 can show an icon toindicate who among the people in the “People” folder are online. In oneor more embodiments, by right clicking on a particular person in the“People” folder, a flyout menu 514 can be presented to give the user achoice to send an individual an email and/or start an instant messagingconversation with the particular person.

The same or similar functionality can be provided when a user browses toand selects a particular photo. Specifically, when the user selects aphoto having a strongly-typed tag (as indicated by the cursor arrow inthe figure), the user can be presented with an option to email or startan instant messaging conversation with a person associated with thephoto (assuming that the person is online). Further, in one or moreembodiments, when the user selects a particular photo, the tags that areassociated with that photo can be shown, as at 516. In one or moreembodiments, security can be enhanced by showing tags only for thoseindividuals who appear in a person's contact or buddy list.

Example Methods

FIG. 6 is a flow diagram that describes steps in a method in accordancewith one or more embodiments. The illustrated method describes one wayin which instant messaging and/or email functionality can be integratedin an application using strongly typed tags. The method can beimplemented in connection with any suitable hardware, software, firmwareor combination thereof. In at least some embodiments, the method can beimplemented in software as by a suitably configured softwareapplication.

Step 600 starts or provides an application that is not primarily aninstant messaging application or email application. Any suitableapplication can be used. An application that is not primarily an instantmessaging application or an email application can be considered as onethat includes functionality that is the primary focus of theapplication, which functionality is not instant messaging functionalityor email functionality. Put another way, such an application would beone that would not be the primary source for instant messaging or emailfunctionality. However, instant messaging and/or email functionality canbe accessed through or by such an application, as will become apparentbelow. A photo viewing application, for example, can be considered asone that is not primarily an instant messaging application or emailapplication. Other applications can include, by way of example and notlimitation, music playing applications, word processing applications,software de-bugging applications and the like.

Step 602 provides, through the application, one or more objects havingstrongly typed tags. Any suitable type of object can be used, examplesof which are provided above. Step 604 receives a user selection via theapplication. Any suitable user selection can be received. For example, auser selection can include, by way of example and not limitation,selecting a particular object that has an associated tag. Alternately oradditionally, a user selection can include selecting a particular userinterface element, such as an element in a navigation tree such as thatdescribed above in FIG. 5.

Step 606 uses one or more strongly typed tags, responsive to the user'sselection, to provide the user with an option to initiate an instantmessaging session and/or send a person or entity associated with the oneor more tags an email message. Examples of how this can be done areprovided above. It is to be appreciated and understood that other typesof functionality can be provided using strongly typed tags as a basis.For example, software executing on a user's computing device can resolvediscrepancies using strongly-typed tags. One example of this isresolving different friendly names to the same unique ID associated witha strongly-typed tag. In addition, software executing on a user'scomputing device can automatically assign strongly-typed tags to variousobjects that a user might receive. Further, the user's system might beable to group, sort, prioritize or otherwise contextualize informationin aggregate by leveraging known groupings and hierarchies in a user'saddress book, and/or by using that extended information to provide acustomized experience for the user.

FIG. 7 is a flow diagram that describes steps in a method in accordancewith one or more embodiments. The illustrated method describes anotherway in which instant messaging functionality can be integrated in anapplication using strongly typed tags. The method can be implemented inconnection with any suitable hardware, software, firmware or combinationthereof. In at least some embodiments, the method can be implemented insoftware as by a suitably configured software application.

Step 700 starts or provides an application that is not primarily aninstant messaging application or email application.

Step 702 provides, through the application, one or more objects havingstrongly typed tags. Any suitable type of object can be used, examplesof which are provided above. Step 704 uses the objects and theirassociated strongly typed tags to display presence information in anapplication user interface. This step can be performed in any suitableway. For example, when a user is working with an application thatincludes objects with strongly typed tags, the application (or anotherapplication or component acting on its behalf) can use the unique IDsassociated with each tag to contact a presence network. Presencenetworks typically include databases that maintain presence informationthat describes individuals who are currently online or offline. Suchnetworks are used to implement instant messaging functionality, as willbe appreciated by the skilled artisan. Once the presence information isascertained by the application, such information can be displayed by theapplication. For example, if the user's application includes a number ofobjects such as photos, and two of the individuals associated withstrongly-typed photo tags are currently online, an appropriate icon,such as the one shown in FIG. 5, can be displayed by the application.Appropriate icons can be displayed to indicate that other individualsare not online. In this way, a user can opt to initiate an instantmessaging conversation with any of their contacts who happen to beonline.

Consider, for example, the user who just received a vacation photocollection from a friend who returned from vacation. When the user opensthe photos and starts browsing the photos, they notice an icon in theuser interface that indicates that their friend is online. The user thentakes the opportunity to send a quick instant message to theirfriend—“Hey Frank—I got your photos and they look great!”

In this way, the user's experience can be enhanced from within theapplication in which they are currently working.

Example System

FIG. 8 illustrates an example computing device 800 that can implementthe various embodiments described above. Computing device 800 can be,for example, computing device 102 of FIG. 1 or any other suitablecomputing device.

Computing device 800 includes one or more processors or processing units802, one or more memory and/or storage components 804, one or moreinput/output (I/O) devices 806, and a bus 808 that allows the variouscomponents and devices to communicate with one another. Bus 808represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. Bus 808 can include wired and/or wirelessbuses.

Memory/storage component 804 represents one or more computer storagemedia. Component 804 can include volatile media (such as random accessmemory (RAM)) and/or nonvolatile media (such as read only memory (ROM),Flash memory, optical disks, magnetic disks, and so forth). Component804 can include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.)as well as removable media (e.g., a Flash memory drive, a removable harddrive, an optical disk, and so forth).

One or more input/output devices 806 allow a user to enter commands andinformation to computing device 800, and also allow information to bepresented to the user and/or other components or devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, and so forth. Examples of outputdevices include a display device (e.g., a monitor or projector),speakers, a printer, a network card, and so forth.

Various techniques may be described herein in the general context ofsoftware or program modules. Generally, software includes routines,programs, objects, components, data structures, and so forth thatperform particular tasks or implement particular abstract data types. Animplementation of these modules and techniques may be stored on ortransmitted across some form of computer readable media. Computerreadable media can be any available medium or media that can be accessedby a computing device. By way of example, and not limitation, computerreadable media may comprise “computer storage media”.

“Computer storage media” include volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules, or other data. Computer storage mediainclude, but are not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by acomputer.

CONCLUSION

In one or more embodiments, a tag is provided and includes a propertythat associates a strongly typed variable with the tag. Strongly typedvariables can include any suitable types. For example, in at least someembodiments, the strongly typed variable is a people type that allowsthe tag to be associated with an individual person or group of people byvirtue of a unique identification that is associated with the person orgroup. Strongly typed tags can then serve as a foundation upon whichvarious other types of information and services can be provided toenhance the user experience.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. One or more computer-readable storage media devices havingcomputer-readable instructions thereon which, when executed, implement amethod comprising: presenting a user interface that enables a user tocreate a tag that is to be used to tag one or more digital objects;defining the tag using the user interface; strongly typing the tag byproviding a unique ID that is associated with an individual or group ofpeople, wherein the tag is configured to associate a changeable propertywith the unique ID, the changeable property being a name, whereindifferent names associated with a same unique ID are automaticallyresolved to the same unique ID independent of a user resolving thedifferent names; and presenting the tag in a navigation tree that isdisplayed on the user interface and which includes a tag node that isexpandable to expose a list of previously created tags.
 2. The one ormore computer-readable storage media devices of claim 1, wherein theinstructions, when executed, implement a method further comprising usingthe tag to present multiple user-selectable communication options to theuser that the user can select, via a cursor, to cause initiation of acommunication with a tagged entity, responsive to the user interactingwith the one or more digital objects.
 3. The one or morecomputer-readable storage media devices of claim 1, wherein theinstructions, when executed, implement a method further comprisingassociating the tag with the one or more digital objects.
 4. The one ormore computer-readable storage media devices of claim 1, wherein theuser interface comprises one that is presented via a photo viewingapplication.
 5. The one or more computer-readable storage media devicesof claim 1, wherein the instructions, when executed, implement a methodfurther comprising using the tag to provide one or more services to theuser.
 6. The one or more computer-readable storage media devices ofclaim 1, wherein one of the user-selectable communication optionscomprises an instant messaging service.
 7. The one or morecomputer-readable storage media devices of claim 1, wherein one of theuser-selectable communication options comprises an email service.
 8. Theone or more computer-readable storage media devices of claim 1, whereinthe unique ID comprises an email address.
 9. The one or morecomputer-readable storage media devices of claim 1, wherein the uniqueID comprises an instant messaging ID.
 10. A system comprising: a digitalobject embodied on a computer-readable storage medium; a tag associatedwith the digital object and embodied on the computer-readable storagemedium, wherein the tag includes a property that associates a stronglytyped variable with the tag, wherein the tag is configured to associatea changeable property with the strongly typed variable, the stronglytyped variable including a unique ID, the changeable property being aname, and wherein different names associated with a same unique ID areautomatically resolved to the same unique ID independent of a userresolving the different names; and code embodied on thecomputer-readable storage medium configured to present the tag in anavigation tree that comprises a tag node expandable to expose a list ofpreviously created tags.
 11. The system of claim 10, wherein thestrongly typed variable comprises a people type variable that associatesthe tag with a person or group of people, wherein the tag is configuredto be used to provide at least one or more of email functionality orinstant messaging functionality, and wherein the object is a photo. 12.The system of claim 10, wherein the changeable property includes astring type property that can be used to provide a friendly name for theobject.
 13. The system of claim 10, wherein the strongly typed variablecomprises a people type variable that associates the tag with a personor group of people, wherein the tag is configured to be used to provideat least one or more of email functionality or instant messagingfunctionality, and wherein the people type variable associates the tagwith the person or group of people by associating the unique ID with thetag.
 14. The system of claim 13, wherein the unique ID comprises aninstant messaging ID.
 15. The system of claim 13, wherein the unique IDcomprises an email address.
 16. A computer-implemented method,comprising: providing one or more objects having at least one stronglytyped tag and at least one changeable property, the at least onechangeable property being a name, wherein different names associatedwith a same unique ID are automatically resolved to the same unique IDindependent of a user resolving the different names, wherein stronglytyped tags uniquely associate tags with an individual or group ofpeople; presenting a navigation tree comprising a tag node that isexpandable to expose a list of previously created tags which are usableto tag the one or more objects.
 17. The computer-implemented method asrecited in claim 16, further comprising providing the one or moreobjects through an application that is not primarily an instantmessaging application or email application.
 18. The computer-implementedmethod as recited in claim 17, further comprising using one or morestrongly typed tags from within the application to present a userinterface element that gives the user a choice to select betweenfunctionalities including an instant messaging functionality or an emailfunctionality.
 19. The computer-implemented method as recited in claim18, wherein using the one or more strongly typed tags further comprisesdisplaying instant messaging presence information in a user interface ofthe application.
 20. The computer-implemented method as recited in claim16, wherein providing the one or more objects further comprisesproviding one or more photos.